#ifndef STATECONTROL_H_INCLUDED
#define STATECONTROL_H_INCLUDED

//#include <iostream>
#include <string>
using namespace std;
struct empaquetado {
    unsigned int b1:1;
};

class StateControl {
    private:
        empaquetado nPiso[32];
        empaquetado nTecho[32];
        empaquetado vector[32];
        unsigned int byte:8;
        unsigned int piso;
        unsigned int techo;
        unsigned int contadorUF;
        unsigned int contadorOV;
        unsigned int contadorCaracter;
        string emision;
   //metodos privados
        void almacenarSalida(empaquetado bit);
    public:
        void controlOverflow();
        void controlUnderflow();
        void asignar();
       // empaquetado* getVPiso();
       // empaquetado* getVTecho();

        StateControl();
        ~StateControl();

        void setPiso(int piso);
        void setTecho(int techo);
        int getPiso();
        int getTecho();
        unsigned int getContadorUF();
        unsigned int getContadorOV();
        string getEmision();

        void agregarPading();
        void normalizar();
        void emitirBits();
        void mostrarVector(empaquetado vector[32], string nombre);
        void mostrarBinario(unsigned int binario, string nombre);
        //unsigned int vectorToInt (const empaquetado* vector[32]);

};

#endif // STATECONTROL_H_INCLUDED
